package com.memento.demo5.main;

import com.memento.demo5.Originator;
import com.memento.demo5.face.MementoIF;

/**
 * 所谓“自述历史”模式(History-On-Self
 * Pattern)实际上就是备忘录模式的一个变种。在备忘录模式中，发起人(Originator)角色、负责人
 * (Caretaker)角色和备忘录(Memento
 * )角色都是独立的角色。虽然在实现上备忘录类可以成为发起人类的内部成员类，但是备忘录类仍然保持作为一个角色的独立意义
 * 。在“自述历史”模式里面，发起人角色自己兼任负责人角色。
 * 
 * @author dell
 * 
 */
public class Client {

	public static void main(String[] args) {
		Originator o = new Originator();
		// 修改状态
		o.setState("state 0");
		// 创建备忘录
		MementoIF memento = o.createMemento();
		// 修改状态
		o.setState("state 1");
		// 按照备忘录恢复对象的状态
		o.restoreMemento(memento);

		System.out.println(o.getState());
	}

}
